SNA Descritive Analysis from “Projeto Redes de Atenção às pessoas que consomem álcool e outras Drogas em Juiz de Fora-MG Brazil” - SNArRDJF
Here you can find a basic script to analysis data from SNArRDJF - this script was elaborated considering its use for orther matrix adjacency data from SNArRDJF - Here we are going to analyse:
########################## Basic Preparation ##### `#########################
suppressMessages(library(RColorBrewer))
suppressMessages(library(car))
suppressMessages(library(xtable))
suppressMessages(library(igraph))
suppressMessages(library(magrittr))
suppressMessages(library(keyplayer))
suppressMessages(library(dplyr))
suppressMessages(library(visNetwork))
suppressMessages(library(knitr))
suppressMessages(library(DT))
#In order to get dinamic javascript object install those ones. If you get problems installing go to Stackoverflow.com and type your error to discover what to do. In some cases the libraries need to be intalled in outside R libs.
#devtools::install_github("wch/webshot")
#webshot::install_phantomjs()
set.seed(123)
#var0_without_CAPS<-delete_vertices(var0,V(var0)[V2_LABEL_ID=="q170_CAPS...CAPS.AD"])
var0_with_CAPS<-var0
#1. Vertices and Edges
var0_with_CAPS_vcount<-vcount(var0_with_CAPS)
var0_with_CAPS_ecount<-ecount(var0_with_CAPS)
Each vertice represents a service - named as an actor in our network
vcount(var0_with_CAPS)
## [1] 187
Each edge represents a connection between two services named as a tie
ecount(var0_with_CAPS)
## [1] 1047
The density of a binary network is simply the proportion of all possible ties that are actually present.
For a valued network, density is defined as the sum of the ties divided by the number of possible ties (i.e. the ratio of all tie strength that is actually present to the number of possible ties).
The density of a network may give us insights into such phenomena as the speed at which information diffuses among the nodes, and the extent to which actors have high levels of social capital and/or social constraint.
The density of a graph is the ratio of the number of edges and the number of possible edges.
edge_density_var0_with_CAPS<-edge_density(var0_with_CAPS) #The proportion of present edges from all possible edges in the network.
edge_density_var0_with_CAPS
## [1] 0.03010178
The edge connectivity of a graph or two vertices, this is recently also called group adhesion.
edge_connectivity(var0_with_CAPS, source =NULL, target =NULL, checks = T) #source and target can be replaced - their are here just as default
## [1] 0
In order to use this we need to call source and target using the number of each vertex instead of the name - type in R to get numbers
#Names and numbers
# list all if you have no idea about services id
# V(var0_with_CAPS)$name
# list all three first (you can use c(1:3))
V(var0_with_CAPS)$name[1] # just as an example
## [1] "ASS_HOS_ Hospital de Pronto Socorro – HPS"
V(var0_with_CAPS)$name[2] # just as an example
## [1] "AMB_SAM_ Centro de Atenção à Saúde Mental (CASM)"
V(var0_with_CAPS)$name[3] # just as an example
## [1] "CAPS_AD"
# list by others id's
V(var0_with_CAPS)$name[6] # just as an example
## [1] "CRE_SOC_ CREAS Norte"
V(var0_with_CAPS)$name[150] # just as an example
## [1] "UAP_RUR_ Buiéié"
V(var0_with_CAPS)$name[185] # just as an example
## [1] "AJU_MUT_ Grupo A.A. Liberdade"
Point connection calculates the number of nodes that would have to be removed in order for one actor to no longer be able to reach another. If there are many different pathways that connect two actors, they have high “connectivity” in the sense that there are multiple ways for a signal to reach from one to the other - lower number - worse resilience
edge_connectivity(var0_with_CAPS, source =150, target =3, checks = T)
## [1] 1
It is the minimum number of vertices needed to remove to make the graph not strongly connected. (If the graph is not strongly connected then this is zero.). The cohesion of a graph (as defined by White and Harary, see references), is the vertex connectivity of the graph. This is calculated by cohesion.
These three functions essentially calculate the same measure(s), more precisely vertex_connectivity is the most general, the other two are included only for the ease of using more descriptive function names.
vertex_connectivity(var0_with_CAPS, source = NULL, target = NULL, checks = TRUE)
## [1] 0
In order to use this we need to call source and target using the number of each vertex instead of the name - type in R to get numbers - see example above for more details
Minimum number of vertices needed to remove to make the vertex not connected by any vertex - it leads an error in case of using two connected vertex
vertex_connectivity(var0_with_CAPS, source =6, target =185, checks = T)
## [1] 0
• For undirected graphs:
– Actor centrality - involvement (connections) with other actors
• For directed graphs:
– Actor centrality - source of the ties (outgoing edges)
– Actor prestige - recipient of many ties (incoming edges)
In general - high centrality degree means direct contact with many other actors
V(var0_with_CAPS)$var0_indegree<-degree(var0_with_CAPS, mode = "in") # Actor prestige - recipient of many ties (incoming edges)
V(var0_with_CAPS)$var0_outdegree <- degree(var0_with_CAPS, mode = "out") # Actor centrality - source of the ties (outgoing edges)
V(var0_with_CAPS)$var0_totaldegree <- degree(var0_with_CAPS, mode = "total")
var0_with_CAPS_indegree<-degree(var0_with_CAPS, mode = "in")
var0_with_CAPS_outdegree<-degree(var0_with_CAPS, mode = "out")
var0_with_CAPS_totaldegree<-degree(var0_with_CAPS, mode = "total")
##in
summary(var0_with_CAPS_indegree)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 2.000 4.000 5.599 6.000 82.000
sd(var0_with_CAPS_indegree)
## [1] 8.085205
hist(degree(var0_with_CAPS, mode = "in", normalized = F), ylab="Frequency", xlab="Degree", breaks=vcount(var0_with_CAPS)/10, main="Histogram of Indegree Nodes - 2_RELACIONAMENTO FORMAL (var0)")
##out
summary(var0_with_CAPS_outdegree)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 0.000 2.000 5.599 5.000 105.000
sd(var0_with_CAPS_outdegree)
## [1] 12.34646
hist(degree(var0_with_CAPS, mode = "out", normalized = F), ylab="Frequency", xlab="Degree", breaks=vcount(var0_with_CAPS)/10, main="Histogram of Outdegree Nodes - 2_RELACIONAMENTO FORMAL (var0)")
##all
summary(var0_with_CAPS_totaldegree)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 2.5 6.0 11.2 12.0 187.0
sd(var0_with_CAPS_totaldegree)
## [1] 19.37514
hist(degree(var0_with_CAPS, mode = "all", normalized = F), ylab="Frequency", xlab="Degree", breaks=vcount(var0_with_CAPS)/10, main="Histogram of All Degree Nodes - 2_RELACIONAMENTO FORMAL (var0)")
A slightly more nuanced metric is “strength centrality”, which is defined as the sum of the weights of all the connections for a given node. This is also sometimes called “weighted degree centrality”
V(var0_with_CAPS)$var0_strength<- strength(var0_with_CAPS, weights=E(var0_with_CAPS)$weight)
var0_strength<- strength(var0_with_CAPS, weights=E(var0_with_CAPS)$weight)
summary(var0_strength)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 2.5 6.0 11.2 12.0 187.0
sd(var0_strength)
## [1] 19.37514
hist(strength(var0_with_CAPS, weights=E(var0_with_CAPS)$weight), ylab="Frequency", xlab="Degree", breaks=vcount(var0_with_CAPS)/10, main="Histogram of Strength Degree Nodes - 2_RELACIONAMENTO FORMAL (var0)")
V(var0_with_CAPS)$var0_indegree_n<-degree(var0_with_CAPS, mode = "in", normalized = T)
V(var0_with_CAPS)$var0_outdegree_n<- degree(var0_with_CAPS, mode = "out", normalized = T)
V(var0_with_CAPS)$var0_totaldegree_n<- degree(var0_with_CAPS, mode = "total", normalized = T)
var0_with_CAPS_indegree_n<-degree(var0_with_CAPS, mode = "in", normalized = T)
var0_with_CAPS_outdegree_n<-degree(var0_with_CAPS, mode = "out", normalized = T)
var0_with_CAPS_totaldegree_n<-degree(var0_with_CAPS, mode = "total", normalized = T)
summary(var0_with_CAPS_indegree_n)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00000 0.01075 0.02151 0.03010 0.03226 0.44090
sd(var0_with_CAPS_indegree_n)
## [1] 0.04346884
hist(degree(var0_with_CAPS, mode = "in", normalized = T), ylab="Frequency", xlab="Normalized Degree", breaks=vcount(var0_with_CAPS)/10, main="Histogram of Normalized Indegree Nodes - 2_RELACIONAMENTO FORMAL (var0)")
summary(var0_with_CAPS_outdegree_n)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00000 0.00000 0.01075 0.03010 0.02688 0.56450
sd(var0_with_CAPS_outdegree_n)
## [1] 0.06637881
hist(degree(var0_with_CAPS, mode = "out", normalized = T), ylab="Frequency", xlab="Normalized Degree", breaks=vcount(var0_with_CAPS)/10, main="Histogram of Normalized Outdegree Nodes - 2_RELACIONAMENTO FORMAL (var0)")
summary(var0_with_CAPS_totaldegree_n)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00000 0.01344 0.03226 0.06020 0.06452 1.00500
sd(var0_with_CAPS_totaldegree_n)
## [1] 0.1041674
hist(degree(var0_with_CAPS, mode = "all", normalized = T), ylab="Frequency", xlab="Normalized Degree", breaks=vcount(var0_with_CAPS)/10, main="Histogram of Normalized All Degree Nodes - 2_RELACIONAMENTO FORMAL (var0)")
V(var0_with_CAPS)$var0_centr_degree <- centralization.degree(var0_with_CAPS)$res
var0_centr_degree <- centralization.degree(var0_with_CAPS)
var0_centr_degree$centralization
## [1] 0.4751272
var0_centr_degree$theoretical_max
## [1] 69192
var0_with_CAPS_degree.distribution<-degree.distribution(var0_with_CAPS)
summary(var0_with_CAPS_degree.distribution)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000000 0.000000 0.000000 0.005319 0.000000 0.155100
sd(var0_with_CAPS_degree.distribution)
## [1] 0.01754522
hist(degree.distribution(var0_with_CAPS), breaks=vcount(var0_with_CAPS)/10, ylab="Frequency", xlab="Degree Distribuition", main="Histogram of Degree Distribuition - 2_RELACIONAMENTO FORMAL (var0)")
dd <- degree.distribution(var0_with_CAPS, cumulative=T, mode="all")
plot(dd, pch=19, cex=1, col="orange", xlab="Degree", ylab="Cumulative Frequency", main= "Cumulative Frequency of 2_RELACIONAMENTO FORMAL (var0) ")
dd.var0_with_CAPS <- degree.distribution(var0_with_CAPS)
d <- 1:max(degree(var0_with_CAPS))-1
ind <- (dd.var0_with_CAPS != 0)
plot(d[ind],
dd.var0_with_CAPS[ind],
log="xy",
col="blue",
xlab=c("Log-Degree"),
ylab=c("Log-Intensity"),
main="Log-Log Degree Distribution For 2_RELACIONAMENTO FORMAL (var0)"
)
The neighborhood of a given order y of a vertex v includes all vertices which are closer to v than the order. Ie. order y=0 is always v itself, order 1 is v plus its immediate neighbors, order 2 is order 1 plus the immediate neighbors of the vertices in order 1, etc.
var0_with_CAPS_simplified<-simplify(var0_with_CAPS)
var0_with_CAPS_a.nn.deg <- graph.knn(var0_with_CAPS_simplified, weights =E(var0_with_CAPS_simplified)$weight)$knn %>% round(1)
V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg <- graph.knn(var0_with_CAPS_simplified, weights=E(var0_with_CAPS_simplified)$weight)$knn
d<-cbind(V(var0_with_CAPS_simplified)$LABEL_COR,var0_with_CAPS_a.nn.deg)
datatable(d)
plot(degree(var0_with_CAPS_simplified),
var0_with_CAPS_a.nn.deg,
log="xy",
col="goldenrod",
xlab=c("Log Vertex Degree"),
ylab=c("Log Average Neighbor Degree"),
main="Average Neighbor Degree vs Vertex Degree - Log-Log Scale for 2_RELACIONAMENTO FORMAL (var0)"
)
var0_with_CAPS_a.nn.deg_w <- graph.knn(var0_with_CAPS_simplified, weights=E(var0_with_CAPS_simplified)$weight)$knn %>% round(1)
V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg_w <-var0_with_CAPS_a.nn.deg <- graph.knn(var0_with_CAPS_simplified, weights=E(var0_with_CAPS_simplified)$weight)$knn
summary(var0_with_CAPS_a.nn.deg_w)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1.80 34.75 43.00 59.23 88.70 187.00 5
sd(var0_with_CAPS_a.nn.deg_w, na.rm = T)
## [1] 39.3313
d<-cbind(V(var0_with_CAPS_simplified)$LABEL_COR,var0_with_CAPS_a.nn.deg_w)
datatable(d)
plot(degree(var0_with_CAPS_simplified),
var0_with_CAPS_a.nn.deg,
log="xy",
col="goldenrod",
xlab=c("Log Vertex Degree"),
ylab=c("Log Average Neighbor Degree"),
main="Average Weighted Neighbor Degree vs Vertex Degree - Log-Log Scale For Weighted 2_RELACIONAMENTO FORMAL (var0)"
)
var0_with_CAPS_indegree<-degree(var0_with_CAPS, mode = "in")
var0_with_CAPS_outdegree<-degree(var0_with_CAPS, mode = "out")
var0_with_CAPS_totaldegree<-degree(var0_with_CAPS, mode = "total")
var0_strength<- strength(var0_with_CAPS, weights=E(var0_with_CAPS)$weight)
var0_with_CAPS_indegree_n<-degree(var0_with_CAPS, mode = "in", normalized = T) %>% round(3)
var0_with_CAPS_outdegree_n<-degree(var0_with_CAPS, mode = "out", normalized = T) %>% round(3)
var0_with_CAPS_totaldegree_n<-degree(var0_with_CAPS, mode = "total", normalized = T) %>% round(3)
var0_centr_degree <- centralization.degree(var0_with_CAPS)$res
var0_with_CAPS_a.nn.deg <- graph.knn(var0_with_CAPS_simplified)$knn %>% round(1)
var0_with_CAPS_a.nn.deg_w <- graph.knn(var0_with_CAPS_simplified, weights=E(var0_with_CAPS_simplified)$weight)$knn %>% round(1)
var0_with_CAPS_df_degree <- data.frame(var0_with_CAPS_indegree,
var0_with_CAPS_outdegree,
var0_with_CAPS_totaldegree,
var0_with_CAPS_indegree_n,
var0_with_CAPS_outdegree_n,
var0_with_CAPS_totaldegree_n,
var0_strength,
var0_centr_degree,
var0_with_CAPS_a.nn.deg,
var0_with_CAPS_a.nn.deg_w) %>% round(3)
#Adding type
var0_with_CAPS_df_degree <-cbind(var0_with_CAPS_df_degree, V(var0_with_CAPS)$LABEL_COR)
#Adding names
names(var0_with_CAPS_df_degree) <- c("In Degree", "Out Degree", "Total Degree","In Degree Normalized", "Out Degree Normalized", "Total Degree Normalized", "Strength","Centralization Degree","Average Neighbor Degree","Average Weighted Neighbor Degree","Type")
#Ordering Variables
var0_with_CAPS_df_degree<-var0_with_CAPS_df_degree[c("Type","In Degree", "Out Degree", "Total Degree","In Degree Normalized", "Out Degree Normalized", "Total Degree Normalized", "Strength","Centralization Degree","Average Neighbor Degree","Average Weighted Neighbor Degree")]
datatable(var0_with_CAPS_df_degree, filter = 'top')
aggdata_mean <-aggregate(. ~ Type, var0_with_CAPS_df_degree, function(x) c(mean=mean(x)))
#Removing Type variable
names(aggdata_mean) <- c("Group", "In Degree(M)", "Out Degree(M)", "Total Degree(M)","In Degree Normalized(M)", "Out Degree Normalized(M)", "Total Degree Normalized(M)", "Strength(M)","Centralization Degree(M)","Average Neighbor Degree(M)","Average Weighted Neighbor Degree(M)")
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_degree, function(x) c(median=median(x)))
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
names(aggdata_median) <- c("Group", "In Degree(median)", "Out Degree(median)", "Total Degree(median)","In Degree Normalized(median)", "Out Degree Normalized(median)", "Total Degree Normalized(median)", "Strength(median)","Centralization Degree(median)","Average Neighbor Degree(median)","Average Weighted Neighbor Degree(median)")
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(2) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","In Degree(M)","In Degree(median)", "Out Degree(M)", "Out Degree(median)","Total Degree(M)", "Total Degree(median)", "In Degree Normalized(M)", "In Degree Normalized(median)", "Out Degree Normalized(M)", "Out Degree Normalized(median)", "Total Degree Normalized(M)", "Total Degree Normalized(median)", "Strength(M)","Strength(median)", "Centralization Degree(M)","Centralization Degree(median)","Average Neighbor Degree(M)","Average Neighbor Degree(median)","Average Weighted Neighbor Degree(M)", "Average Weighted Neighbor Degree(median)")]
datatable(total_table, filter = 'top')
var0_with_CAPS_df_degree <- data.frame(var0_with_CAPS_indegree,
var0_with_CAPS_outdegree,
var0_with_CAPS_totaldegree,
var0_with_CAPS_indegree_n,
var0_with_CAPS_outdegree_n,
var0_with_CAPS_totaldegree_n,
var0_strength,
var0_centr_degree,
var0_with_CAPS_a.nn.deg,
var0_with_CAPS_a.nn.deg_w) %>% round(3)
#Adding type
var0_with_CAPS_df_degree <-cbind(var0_with_CAPS_df_degree, V(var0_with_CAPS)$TIPO1)
#Adding names
names(var0_with_CAPS_df_degree) <- c("In Degree", "Out Degree", "Total Degree","In Degree Normalized", "Out Degree Normalized", "Total Degree Normalized", "Strength","Centralization Degree","Average Neighbor Degree","Average Weighted Neighbor Degree","Type")
#Ordering Variables
var0_with_CAPS_df_degree<-var0_with_CAPS_df_degree[c("Type","In Degree", "Out Degree", "Total Degree","In Degree Normalized", "Out Degree Normalized", "Total Degree Normalized", "Strength","Centralization Degree","Average Neighbor Degree","Average Weighted Neighbor Degree")]
datatable(var0_with_CAPS_df_degree, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_df_degree, by=list(var0_with_CAPS_df_degree$Type), FUN=mean, na.rm=TRUE)
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
names(aggdata_mean) <- c("Group", "In Degree(M)", "Out Degree(M)", "Total Degree(M)","In Degree Normalized(M)", "Out Degree Normalized(M)", "Total Degree Normalized(M)", "Strength(M)","Centralization Degree(M)","Average Neighbor Degree(M)","Average Weighted Neighbor Degree(M)")
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_degree, function(x) c(median=median(x)))
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
names(aggdata_median) <- c("Group", "In Degree(median)", "Out Degree(median)", "Total Degree(median)","In Degree Normalized(median)", "Out Degree Normalized(median)", "Total Degree Normalized(median)", "Strength(median)","Centralization Degree(median)","Average Neighbor Degree(median)","Average Weighted Neighbor Degree(median)")
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(2) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","In Degree(M)","In Degree(median)", "Out Degree(M)", "Out Degree(median)","Total Degree(M)", "Total Degree(median)", "In Degree Normalized(M)", "In Degree Normalized(median)", "Out Degree Normalized(M)", "Out Degree Normalized(median)", "Total Degree Normalized(M)", "Total Degree Normalized(median)", "Strength(M)","Strength(median)", "Centralization Degree(M)","Centralization Degree(median)","Average Neighbor Degree(M)","Average Neighbor Degree(median)","Average Weighted Neighbor Degree(M)", "Average Weighted Neighbor Degree(median)")]
datatable(total_table, filter = 'top')
var0_with_CAPS_df_degree <- data.frame(var0_with_CAPS_indegree,
var0_with_CAPS_outdegree,
var0_with_CAPS_totaldegree,
var0_with_CAPS_indegree_n,
var0_with_CAPS_outdegree_n,
var0_with_CAPS_totaldegree_n,
var0_strength,
var0_centr_degree,
var0_with_CAPS_a.nn.deg,
var0_with_CAPS_a.nn.deg_w) %>% round(3)
#Adding type
var0_with_CAPS_df_degree <-cbind(var0_with_CAPS_df_degree, V(var0_with_CAPS)$TIPO2)
#Adding names
names(var0_with_CAPS_df_degree) <- c("In Degree", "Out Degree", "Total Degree","In Degree Normalized", "Out Degree Normalized", "Total Degree Normalized", "Strength","Centralization Degree","Average Neighbor Degree","Average Weighted Neighbor Degree","Type")
#Ordering Variables
var0_with_CAPS_df_degree<-var0_with_CAPS_df_degree[c("Type","In Degree", "Out Degree", "Total Degree","In Degree Normalized", "Out Degree Normalized", "Total Degree Normalized", "Strength","Centralization Degree","Average Neighbor Degree","Average Weighted Neighbor Degree")]
datatable(var0_with_CAPS_df_degree, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_df_degree, by=list(var0_with_CAPS_df_degree$Type), FUN=mean, na.rm=TRUE)
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
names(aggdata_mean) <- c("Group", "In Degree(M)", "Out Degree(M)", "Total Degree(M)","In Degree Normalized(M)", "Out Degree Normalized(M)", "Total Degree Normalized(M)", "Strength(M)","Centralization Degree(M)","Average Neighbor Degree(M)","Average Weighted Neighbor Degree(M)")
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_degree, function(x) c(median=median(x)))
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
names(aggdata_median) <- c("Group", "In Degree(median)", "Out Degree(median)", "Total Degree(median)","In Degree Normalized(median)", "Out Degree Normalized(median)", "Total Degree Normalized(median)", "Strength(median)","Centralization Degree(median)","Average Neighbor Degree(median)","Average Weighted Neighbor Degree(median)")
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(2) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","In Degree(M)","In Degree(median)", "Out Degree(M)", "Out Degree(median)","Total Degree(M)", "Total Degree(median)", "In Degree Normalized(M)", "In Degree Normalized(median)", "Out Degree Normalized(M)", "Out Degree Normalized(median)", "Total Degree Normalized(M)", "Total Degree Normalized(median)", "Strength(M)","Strength(median)", "Centralization Degree(M)","Centralization Degree(median)","Average Neighbor Degree(M)","Average Neighbor Degree(median)","Average Weighted Neighbor Degree(M)", "Average Weighted Neighbor Degree(median)")]
datatable(total_table, filter = 'top')
#Set Seed
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10000, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$color[edge.start],
edge.arrow.size=(degree(var0_with_CAPS)+1)/(100*mean(degree(var0_with_CAPS))),
edge.width=E(var0_with_CAPS)$weight/(10*mean(E(var0_with_CAPS)$weight)),
edge.curved = TRUE,
vertex.size=log((degree(var0_with_CAPS)+2))*(0.5*mean(degree(var0_with_CAPS))),
vertex.frame.color="#ffffff",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=log(degree(var0_with_CAPS)+2)/mean(degree(var0_with_CAPS)),
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2]))
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$LABEL_COR
b<-V(var0_with_CAPS)$color
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2], y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .5)
#Adding Title
title("Network Vertex Degree Sized - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ", cex = .5)
text(x=range(co[,1])[1], y=range(co[,2])[1], labels =
sprintf("Median In Degree: %.2f\n Median Out Degree: %.2f",
median(degree(var0_with_CAPS, mode="in")),
median(degree(var0_with_CAPS, mode="out"))
))
#Set Seed
set.seed(123)
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-V(var0_with_CAPS)$var0_totaldegree %>% round(1)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "RdBu"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<- var0_vertex_color_degree[as.numeric(cut(degree(var0_with_CAPS),breaks =length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10000, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
#edge.color=V(var0_with_CAPS)$color[edge.start],
edge.arrow.size=(degree(var0_with_CAPS)+1)/3000,
edge.width=E(var0_with_CAPS)$weight/10,
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=log((degree(var0_with_CAPS)+2))*10,
vertex.size=20,
vertex.frame.color="#ffffff",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=log((degree(var0_with_CAPS)+2))/10,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2], y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Vertex Degree Sized and Red to Blue - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(x=range(co[,1])[1], y=range(co[,2])[1], labels =
sprintf("Median In Degree: %.2f\nMedian Out Degree: %.2f",
median(degree(var0_with_CAPS, mode="in")),
median(degree(var0_with_CAPS, mode="out"))
))
#Set Seed
set.seed(123)
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-V(var0_with_CAPS)$var0_centr_degree
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "Spectral"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<- var0_vertex_color_degree[as.numeric(cut(V(var0_with_CAPS)$var0_color_degree,breaks =length(unique(V(var0_with_CAPS)$var0_color_degree))))]
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10000, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=(degree(var0_with_CAPS)+1)/10000,
edge.width=E(var0_with_CAPS)$weight/10,
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=log((V(var0_with_CAPS)$var0_centr_degree+2))*10,
vertex.frame.color="#ffffff",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=log((degree(var0_with_CAPS)+2))/10,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2]))
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2], y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Vertex Centralization Degree Sized Spectral Colored - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(x=range(co[,1])[1], y=range(co[,2])[1], labels =
sprintf("Median In Degree: %.2f\nMedian Out Degree: %.2f",
median(degree(var0_with_CAPS, mode="in")),
median(degree(var0_with_CAPS, mode="out"))
))
#Set Seed
set.seed(123)
# Network elements with lower than meadian degree
higherthanmedian.network_var0_with_CAPS<-V(var0_with_CAPS)[degree(var0_with_CAPS)<median(degree(var0_with_CAPS))]
#Deleting vertices based in intersection betewenn var0_with_CAPS
high_var0_with_CAPS<-delete.vertices(var0_with_CAPS, higherthanmedian.network_var0_with_CAPS)
#Plotting based only on degree measures
edge.start <- ends(high_var0_with_CAPS, es=E(high_var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(high_var0_with_CAPS))
maxC <- rep(Inf, vcount(high_var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(high_var0_with_CAPS, niter=10000, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(high_var0_with_CAPS)$weight)
#PLotting
plot(high_var0_with_CAPS,
layout=co,
edge.color=V(high_var0_with_CAPS)$color[edge.start],
edge.arrow.size=(degree(high_var0_with_CAPS)+1)/1000,
edge.width=E(high_var0_with_CAPS)$weight/10,
edge.curved = TRUE,
vertex.size=log((V(high_var0_with_CAPS)$var0_centr_degree+2))*10,
vertex.frame.color="#ffffff",
vertex.label.color="black",
vertex.label=get.vertex.attribute(high_var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=log((degree(high_var0_with_CAPS)+2))/10,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2]))
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(high_var0_with_CAPS)$LABEL_COR
b<-V(high_var0_with_CAPS)$color
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2], y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=3,
bty="n",
ncol=1,
lty=1,
cex = .5)
#Adding Title
title("Network Higher Than Median Degree - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(x=range(co[,1])[1], y=range(co[,2])[1], labels =
sprintf("Mean In Degree: %.2f\n Mean Out Degree: %.2f",
mean(degree(high_var0_with_CAPS, mode="in")),
mean(degree(high_var0_with_CAPS, mode="out"))
)
)
#Set Seed
set.seed(123)
# Network elements with lower than meadian degree
lowerthanmedian.network_var0_with_CAPS<-V(var0_with_CAPS)[degree(var0_with_CAPS)>median(degree(var0_with_CAPS))]
#Deleting vertices based in intersection betewenn var0_with_CAPS
small_var0_with_CAPS<-delete.vertices(var0_with_CAPS, lowerthanmedian.network_var0_with_CAPS)
#Plotting based only on degree measures
edge.start <- ends(small_var0_with_CAPS, es=E(small_var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(small_var0_with_CAPS))
maxC <- rep(Inf, vcount(small_var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(small_var0_with_CAPS, niter=10000, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(small_var0_with_CAPS)$weight)
#PLotting
plot(small_var0_with_CAPS,
layout=co,
edge.color=V(small_var0_with_CAPS)$color[edge.start],
edge.arrow.size=(degree(small_var0_with_CAPS)+1)/1000,
edge.width=E(small_var0_with_CAPS)$weight/10,
edge.curved = TRUE,
vertex.size=log((V(small_var0_with_CAPS)$var0_centr_degree+2))*20,
vertex.frame.color="#ffffff",
vertex.label.color="black",
vertex.label=get.vertex.attribute(small_var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=log((degree(small_var0_with_CAPS)+2))/3,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2]))
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(small_var0_with_CAPS)$LABEL_COR
b<-V(small_var0_with_CAPS)$color
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2], y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=4,
bty="n",
ncol=1,
lty=1,
cex = .5)
#Adding Title
title("Network Smaller Than Median Degree - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(x=range(co[,1])[1], y=range(co[,2])[1], labels =
sprintf("Mean In Degree: %.2f\nMean Out Degree: %.2f",
mean(degree(small_var0_with_CAPS, mode="in")),
mean(degree(small_var0_with_CAPS, mode="out"))
)
)
#Set Seed
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS_simplified, es=E(var0_with_CAPS_simplified), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS_simplified))
maxC <- rep(Inf, vcount(var0_with_CAPS_simplified))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS_simplified, niter=10000, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS_simplified)$weight)
#Plotting based only on degree measures #var0_with_CAPS_simplified_a.nn.deg
V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg<-as.numeric(graph.knn(var0_with_CAPS_simplified)$knn)
V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg[V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg=="NaN"]<-0
#PLotting
plot(var0_with_CAPS_simplified,
layout=co,
edge.color=V(var0_with_CAPS_simplified)$color[edge.start],
edge.arrow.size=sqrt((V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg)^2+1)/1000,
edge.width=E(var0_with_CAPS_simplified)$weight/80,
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS_simplified)$color,
vertex.size=(sqrt((V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg)^2))/1,
vertex.frame.color="#ffffff",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS_simplified,"LABEL_COR"),
vertex.label.cex=(sqrt((V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg)^2)+1)/250,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2]))
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS_simplified)$LABEL_COR
b<-V(var0_with_CAPS_simplified)$color
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
inset=2,
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=3,
lwd=2,
x.intersp=2,
y.intersp=4,
cex = .3)
#Adding Title
title("Network Average Neighbor Degree Sized - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(x=range(co[,1])[1], y=range(co[,2])[1], labels =
sprintf("Median Average Neighbor Degree: %.2f",
median((var0_with_CAPS_a.nn.deg+1))
))
#Set Seed
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS_simplified, es=E(var0_with_CAPS_simplified), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS_simplified))
maxC <- rep(Inf, vcount(var0_with_CAPS_simplified))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS_simplified, niter=10000, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS_simplified)$weight)
#Plotting based only on degree measures #var0_with_CAPS_a.nn.deg
V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg_w<-as.numeric(graph.knn(var0_with_CAPS_simplified, weights = E(var0_with_CAPS_simplified)$weight)$knn)
V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg_w[V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg_w=="NaN"]<-0
#PLotting
plot(var0_with_CAPS_simplified,
layout=co,
edge.color=V(var0_with_CAPS_simplified)$color[edge.start],
edge.arrow.size=sqrt((V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg_w)^2+1)/1000,
edge.width=E(var0_with_CAPS_simplified)$weight/100,
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS_simplified)$color,
vertex.size=(sqrt((V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg_w)^2))/5,
vertex.frame.color="#ffffff",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS_simplified,"LABEL_COR"),
vertex.label.cex=(sqrt((V(var0_with_CAPS_simplified)$var0_with_CAPS_a.nn.deg_w)^2)+1)/500,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2]))
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS_simplified)$LABEL_COR
b<-V(var0_with_CAPS_simplified)$color
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2], y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=4,
bty="n",
ncol=1,
lty=1,
cex = .5)
#Adding Title
title("Network Average Weighted Neighbor Degree Sized - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(x=range(co[,1])[1], y=range(co[,2])[1], labels =
sprintf("Median Average Weighted Neighbor Degree: %.2f",
median((var0_with_CAPS_a.nn.deg_w+1))
))
#Circle Degree ***Too intense computation***
#A_var0_with_CAPS <- get.adjacency(var0_with_CAPS, sparse=FALSE)
#detach("package:igraph", unload=TRUE)
#library(network)
#g <- network::as.network.matrix(A_var0_with_CAPS)
#library(sna)
#gplot.target(g, degree(g), main="Circle Degree")
#library(igraph)
How close an actor to all the other actors in network?
High closeness centrality - short communication path to others, minimal number of steps to reach others.
Answers the “Kevin Bacon” question:
How many steps are required to access every other vertex from a given vertex?
One practical implication of this metric: it helps you gauge how information might spread within your network, and who might be the best people to leverage if you need to make sure information gets around. Link here: http://www.tc.umn.edu/~alink/R-social-network-analysis.html
Closeness centrality can be defined as a measure of how far other nodes are from the node in question. Nodes with high closeness centrality are likely to be relatively efficient in receiving or transmitting information to/from distant parts of the social network.
Scores may be interpreted as arising from a reciprocal process in which the centrality of each actor is proportional to the sum of the centralities of those actors to whom he or she is connected.
In general, vertices with high eigenvector centralities are those which are connected to many other vertices which are, in turn, connected to many others (and so on). (The perceptive may realize that this implies that the largest values will be obtained by individuals in large cliques (or high-density substructures)
V(var0_with_CAPS)$var0_incloseness <- closeness(var0_with_CAPS, mode = "in", weights = E(var0_with_CAPS)$var0) %>% round(6)
V(var0_with_CAPS)$var0_outcloseness <- closeness(var0_with_CAPS, mode = "out", weights = E(var0_with_CAPS)$var0) %>% round(6)
V(var0_with_CAPS)$var0_totalcloseness <- closeness(var0_with_CAPS, mode = "total", weights = E(var0_with_CAPS)$var0) %>% round(4)
var0_with_CAPS_incloseness<- closeness(var0_with_CAPS, mode = "in", weights = E(var0_with_CAPS)$var0) %>% round(6)
var0_with_CAPS_outcloseness<- closeness(var0_with_CAPS, mode = "out", weights = E(var0_with_CAPS)$var0) %>% round(6)
var0_with_CAPS_totalcloseness<- closeness(var0_with_CAPS, mode = "total", weights = E(var0_with_CAPS)$var0) %>% round(6)
summary(var0_with_CAPS_incloseness)
## Min. 1st Qu. Median
## 2.900e-05 7.200e-05 7.200e-05
## Mean 3rd Qu. Max.
## 6.492e-05 7.200e-05 7.600e-05
sd(var0_with_CAPS_incloseness)
## [1] 1.638413e-05
V(var0_with_CAPS)$var0_incloseness<-closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in")
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_incloseness,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "RdBu"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in"),
edge.width=E(var0_with_CAPS)$weight/mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in")*10^5,
vertex.frame.color="black",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=(closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in")+10^-5)*2000,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Closeness Degree Sized and Colored In - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf(
"Median In Closennes:%.4f\nSD In Closennes: %.5f",
median(closeness(var0_with_CAPS, mode="in", weights = E(var0_with_CAPS)$var0)),
sd(closeness(var0_with_CAPS, mode="in", weights = E(var0_with_CAPS)$var0))
)
)
summary(var0_with_CAPS_outcloseness)
## Min. 1st Qu. Median
## 0.0000290 0.0000290 0.0001570
## Mean 3rd Qu. Max.
## 0.0001091 0.0001580 0.0004730
sd(var0_with_CAPS_outcloseness)
## [1] 6.830992e-05
V(var0_with_CAPS)$var0_outcloseness<-closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out")
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_outcloseness,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "RdBu"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out"),
edge.width=E(var0_with_CAPS)$weight/2*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out")*10^4,
vertex.frame.color="white",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out")*200,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Closeness Degree Sized and Colored OUT - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf(
"Median OUT Closennes:%.4f\nSD OUT Closennes: %.5f",
median(closeness(var0_with_CAPS, mode="out", weights = E(var0_with_CAPS)$var0)),
sd(closeness(var0_with_CAPS, mode="out", weights = E(var0_with_CAPS)$var0))
)
)
summary(var0_with_CAPS_totalcloseness)
## Min. 1st Qu. Median
## 0.0000290 0.0006740 0.0007260
## Mean 3rd Qu. Max.
## 0.0006898 0.0007320 0.0008220
sd(var0_with_CAPS_totalcloseness)
## [1] 0.0001176304
V(var0_with_CAPS)$var0_allcloseness<-closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all")
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_allcloseness,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "RdBu"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all"),
edge.width=E(var0_with_CAPS)$weight/2*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all")*10^4,
vertex.frame.color="white",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=(closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all")+0.00001)*200,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Closeness Degree Sized and Colored all - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf(
"Median all Closennes:%.4f\nSD all Closennes: %.5f",
median(closeness(var0_with_CAPS, mode="all", weights = E(var0_with_CAPS)$var0)),
sd(closeness(var0_with_CAPS, mode="all", weights = E(var0_with_CAPS)$var0))
)
)
V(var0_with_CAPS)$var0_incloseness_n <- closeness(var0_with_CAPS, mode = "in",, weights = E(var0_with_CAPS)$var0, normalized = T) %>% round(10)
V(var0_with_CAPS)$var0_outcloseness_n <- closeness(var0_with_CAPS, mode = "out", normalized = T, weights = E(var0_with_CAPS)$var0) %>% round(6)
V(var0_with_CAPS)$var0_totalcloseness_n <- closeness(var0_with_CAPS, mode = "total", normalized = T, weights = E(var0_with_CAPS)$var0) %>% round(6)
var0_with_CAPS_incloseness_n<- closeness(var0_with_CAPS, mode = "in", normalized = T, weights = E(var0_with_CAPS)$var0) %>% round(6)
var0_with_CAPS_outcloseness_n<- closeness(var0_with_CAPS, mode = "out", normalized = T, weights = E(var0_with_CAPS)$var0) %>% round(6)
var0_with_CAPS_totalcloseness_n<- closeness(var0_with_CAPS, mode = "total", normalized = T, weights = E(var0_with_CAPS)$var0) %>% round(6)
summary(var0_with_CAPS_incloseness_n)
## Min. 1st Qu. Median
## 0.005348 0.013340 0.013390
## Mean 3rd Qu. Max.
## 0.012070 0.013420 0.014210
sd(var0_with_CAPS_incloseness_n)
## [1] 0.003055024
V(var0_with_CAPS)$var0_incloseness_n<-closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in", normalized = T)
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_incloseness_n,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "RdBu"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in",normalized = T),
edge.width=E(var0_with_CAPS)$weight/1000*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=(closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in",normalized = T))*1000,
vertex.frame.color="black",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="in",normalized = T)*10,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Closeness Degree Sized Normalized In - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf(
"Median In Closennes:%.4f\nSD In Closennes: %.5f",
median(closeness(var0_with_CAPS, mode="in", weights = E(var0_with_CAPS)$var0, normalized = T)),
sd(closeness(var0_with_CAPS, mode="in", weights = E(var0_with_CAPS)$var0, normalized = T))
)
)
###Closeness Normalized - OUT
summary(var0_with_CAPS_outcloseness_n)
## Min. 1st Qu. Median
## 0.005348 0.005348 0.029260
## Mean 3rd Qu. Max.
## 0.020280 0.029340 0.087900
sd(var0_with_CAPS_outcloseness_n)
## [1] 0.01271714
V(var0_with_CAPS)$var0_outcloseness_n<-closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out", normalized = T)
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_outcloseness_n,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "RdBu"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out",normalized = T),
edge.width=E(var0_with_CAPS)$weight/10*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=(closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out",normalized = T))*100,
vertex.frame.color="black",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out",normalized = T)*1.5,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Closeness Degree Sized Normalized OUT - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf(
"Median OUT Closennes:%.4f\nSD OUT Closennes: %.5f",
median(closeness(var0_with_CAPS, mode="out", weights = E(var0_with_CAPS)$var0, normalized = T)),
sd(closeness(var0_with_CAPS, mode="out", weights = E(var0_with_CAPS)$var0, normalized = T))
)
)
summary(var0_with_CAPS_totalcloseness_n)
## Min. 1st Qu. Median
## 0.005348 0.125400 0.135100
## Mean 3rd Qu. Max.
## 0.128300 0.136100 0.153000
sd(var0_with_CAPS_totalcloseness_n)
## [1] 0.02188651
V(var0_with_CAPS)$var0_allcloseness_n<-closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all", normalized = T)
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_allcloseness_n,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "RdBu"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all",normalized = T),
edge.width=E(var0_with_CAPS)$weight/10*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=(closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all",normalized = T))*100,
vertex.frame.color="black",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="all",normalized = T)*1.5,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Closeness Degree Sized Normalized ALL - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf(
"Median ALL Closennes:%.4f\nSD ALL Closennes: %.5f",
median(closeness(var0_with_CAPS, mode="all", weights = E(var0_with_CAPS)$var0, normalized = T)),
sd(closeness(var0_with_CAPS, mode="all", weights = E(var0_with_CAPS)$var0, normalized = T))
)
)
V(var0_with_CAPS)$var0_incloseness_n <- closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode = "in", normalized = T) %>% round(6)
V(var0_with_CAPS)$var0_outcloseness_n <- closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode = "out", normalized = T) %>% round(6)
V(var0_with_CAPS)$var0_totalcloseness_n <- closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode = "total", normalized = T) %>% round(6)
V(var0_with_CAPS)$var0_centr_closeness<- centralization.closeness(var0_with_CAPS)$res
var0_centr_closeness<- centralization.closeness(var0_with_CAPS)$res
var0_with_CAPS_centr_closeness_all<- centralization.closeness(var0_with_CAPS)
var0_with_CAPS_centr_closeness_all$centralization
## [1] 0.06834656
var0_with_CAPS_centr_closeness_all$theoretical_max
## [1] 185.0053
V(var0_with_CAPS)$var0_centr_closeness<- centralization.closeness(var0_with_CAPS)$res
#Get Variable
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_centr_closeness,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "Spectral"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=centralization.closeness(var0_with_CAPS)$res,
edge.width=E(var0_with_CAPS)$weight/10*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=centralization.closeness(var0_with_CAPS)$res*100,
vertex.frame.color="black",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=centralization.closeness(var0_with_CAPS)$res,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Centralization Closeness - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf(
"Median Centralization Closeness:%.4f\nSD Centralization Closeness: %.5f",
median(centralization.closeness(var0_with_CAPS)$res),
sd(centralization.closeness(var0_with_CAPS)$res)
)
)
var0_with_CAPS_incloseness<- closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode = "in") %>% round(6)
var0_with_CAPS_outcloseness<- closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode = "out") %>% round(6)
var0_with_CAPS_totalcloseness<- closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode = "total") %>% round(6)
var0_with_CAPS_incloseness_n<- closeness(var0_with_CAPS,weights = E(var0_with_CAPS)$var0, mode = "in", normalized = T) %>% round(6)
var0_with_CAPS_outcloseness_n<- closeness(var0_with_CAPS,weights = E(var0_with_CAPS)$var0, mode = "out", normalized = T) %>% round(6)
var0_with_CAPS_totalcloseness_n<- closeness(var0_with_CAPS,weights = E(var0_with_CAPS)$var0, mode = "total", normalized = T) %>% round(6)
var0_centr_closeness <- centralization.closeness(var0_with_CAPS)$res %>% round(6)
var0_with_CAPS_df_closseness <- data.frame(
var0_with_CAPS_incloseness,
var0_with_CAPS_outcloseness,
var0_with_CAPS_totalcloseness,
var0_with_CAPS_incloseness_n,
var0_with_CAPS_outcloseness_n,
var0_with_CAPS_totalcloseness_n,
var0_centr_closeness) %>% round(6)
#Adding type
var0_with_CAPS_df_closseness <-cbind(var0_with_CAPS_df_closseness, V(var0_with_CAPS)$LABEL_COR)
#Adding names
names(var0_with_CAPS_df_closseness) <- c("In Closeness", "Out Closeness", "Total Closeness","In Closeness Normalized", "Out Closeness Normalized", "Total Closeness Normalized","Centralization Closeness","Type")
#Ordering Variables
var0_with_CAPS_df_closseness<-var0_with_CAPS_df_closseness[c("Type","In Closeness", "Out Closeness", "Total Closeness","In Closeness Normalized", "Out Closeness Normalized","Total Closeness Normalized", "Centralization Closeness")]
datatable(var0_with_CAPS_df_closseness, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_df_closseness, by=list(var0_with_CAPS_df_closseness$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","In Closeness(M)", "Out Closeness(M)", "Total Closeness(M)","In Closeness Normalized(M)", "Out Closeness Normalized(M)", "Total Closeness Normalized(M)","Centralization Closeness(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_closseness, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","In Closeness(median)", "Out Closeness(median)", "Total Closeness(median)","In Closeness Normalized(median)", "Out Closeness Normalized(median)", "Total Closeness Normalized(median)", "Centralization Closeness(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
#Merging mean and median
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(6) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","In Closeness(M)", "In Closeness(median)", "Out Closeness(M)", "Out Closeness(median)", "Total Closeness(M)","Total Closeness(median)","In Closeness Normalized(M)", "In Closeness Normalized(median)", "Out Closeness Normalized(M)", "Out Closeness Normalized(median)", "Total Closeness Normalized(M)","Total Closeness Normalized(median)", "Centralization Closeness(M)","Centralization Closeness(median)")]
datatable(total_table, filter = 'top')
var0_with_CAPS_df_closseness <- data.frame(
var0_with_CAPS_incloseness,
var0_with_CAPS_outcloseness,
var0_with_CAPS_totalcloseness,
var0_with_CAPS_incloseness_n,
var0_with_CAPS_outcloseness_n,
var0_with_CAPS_totalcloseness_n,
var0_centr_closeness) %>% round(6)
#Adding type
var0_with_CAPS_df_closseness <-cbind(var0_with_CAPS_df_closseness, V(var0_with_CAPS)$TIPO1)
#Adding names
names(var0_with_CAPS_df_closseness) <- c("In Closeness", "Out Closeness", "Total Closeness","In Closeness Normalized", "Out Closeness Normalized", "Total Closeness Normalized","Centralization Closeness","Type")
#Ordering Variables
var0_with_CAPS_df_closseness<-var0_with_CAPS_df_closseness[c("Type","In Closeness", "Out Closeness", "Total Closeness","In Closeness Normalized", "Out Closeness Normalized","Total Closeness Normalized", "Centralization Closeness")]
datatable(var0_with_CAPS_df_closseness, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_df_closseness, by=list(var0_with_CAPS_df_closseness$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","In Closeness(M)", "Out Closeness(M)", "Total Closeness(M)","In Closeness Normalized(M)", "Out Closeness Normalized(M)", "Total Closeness Normalized(M)","Centralization Closeness(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_closseness, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","In Closeness(median)", "Out Closeness(median)", "Total Closeness(median)","In Closeness Normalized(median)", "Out Closeness Normalized(median)", "Total Closeness Normalized(median)", "Centralization Closeness(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
#Merging mean and median
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(6) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","In Closeness(M)", "In Closeness(median)", "Out Closeness(M)", "Out Closeness(median)", "Total Closeness(M)","Total Closeness(median)","In Closeness Normalized(M)", "In Closeness Normalized(median)", "Out Closeness Normalized(M)", "Out Closeness Normalized(median)", "Total Closeness Normalized(M)","Total Closeness Normalized(median)", "Centralization Closeness(M)","Centralization Closeness(median)")]
datatable(total_table, filter = 'top')
var0_with_CAPS_df_closseness <- data.frame(
var0_with_CAPS_incloseness,
var0_with_CAPS_outcloseness,
var0_with_CAPS_totalcloseness,
var0_with_CAPS_incloseness_n,
var0_with_CAPS_outcloseness_n,
var0_with_CAPS_totalcloseness_n,
var0_centr_closeness) %>% round(6)
#Adding type
var0_with_CAPS_df_closseness <-cbind(var0_with_CAPS_df_closseness, V(var0_with_CAPS)$TIPO2)
#Adding names
names(var0_with_CAPS_df_closseness) <- c("In Closeness", "Out Closeness", "Total Closeness","In Closeness Normalized", "Out Closeness Normalized", "Total Closeness Normalized","Centralization Closeness","Type")
#Ordering Variables
var0_with_CAPS_df_closseness<-var0_with_CAPS_df_closseness[c("Type","In Closeness", "Out Closeness", "Total Closeness","In Closeness Normalized", "Out Closeness Normalized","Total Closeness Normalized", "Centralization Closeness")]
datatable(var0_with_CAPS_df_closseness, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_df_closseness, by=list(var0_with_CAPS_df_closseness$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","In Closeness(M)", "Out Closeness(M)", "Total Closeness(M)","In Closeness Normalized(M)", "Out Closeness Normalized(M)", "Total Closeness Normalized(M)","Centralization Closeness(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_closseness, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","In Closeness(median)", "Out Closeness(median)", "Total Closeness(median)","In Closeness Normalized(median)", "Out Closeness Normalized(median)", "Total Closeness Normalized(median)", "Centralization Closeness(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
#Merging mean and median
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(6) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","In Closeness(M)", "In Closeness(median)", "Out Closeness(M)", "Out Closeness(median)", "Total Closeness(M)","Total Closeness(median)","In Closeness Normalized(M)", "In Closeness Normalized(median)", "Out Closeness Normalized(M)", "Out Closeness Normalized(median)", "Total Closeness Normalized(M)","Total Closeness Normalized(median)", "Centralization Closeness(M)","Centralization Closeness(median)")]
datatable(total_table, filter = 'top')
High betweenness centrality - vertex lies on many shortest paths. Probability that a communication from s to t will go through i - considering σst(i).
Betweenness measures the number of shortest paths between nodes in the network that go through the node in question. Nodes with relatively high betweenness are likely to be key conduits of information flow across a network, and their removal may have a large impact on spreading phenomena.
Betweenness centrality based on a broker position connecting others or Number of geodesics that pass through the node or the edge. A higher number means an more important node.
E(var0_with_CAPS)$equalone<-1
V(var0_with_CAPS)$var0_betweenness <- betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$equalone) %>% round(6)
var0_with_CAPS_betweenness <- betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$equalone) %>% round(6)
#Z Score
V(var0_with_CAPS)$var0_with_CAPS_betweenness_zscore <- (V(var0_with_CAPS)$var0_betweenness - mean(V(var0_with_CAPS)$var0_betweenness))/sd(V(var0_with_CAPS)$var0_betweenness)
#Normalized
V(var0_with_CAPS)$var0_with_CAPS_betweenness_norm <- (V(var0_with_CAPS)$var0_betweenness - min(V(var0_with_CAPS)$var0_betweenness))/max(V(var0_with_CAPS)$var0_betweenness)-min(V(var0_with_CAPS)$var0_betweenness)
summary(var0_with_CAPS_betweenness)
## Min. 1st Qu. Median
## 0.00 0.00 0.38
## Mean 3rd Qu. Max.
## 133.50 20.85 9463.00
sd(var0_with_CAPS_betweenness)
## [1] 756.414
V(var0_with_CAPS)$var0_betweenness_w <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$var0) %>% round(6)
var0_betweenness_w <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$var0) %>% round(6)
summary(var0_betweenness_w)
## Min. 1st Qu. Median
## 0.00 0.00 0.38
## Mean 3rd Qu. Max.
## 133.50 20.85 9463.00
sd(var0_betweenness_w)
## [1] 756.414
V(var0_with_CAPS)$var0_centr_betweenness <- centralization.betweenness(var0_with_CAPS)$res
var0_centr_betweenness <- centralization.betweenness(var0_with_CAPS)
var0_centr_betweenness$centralization
## [1] 0.2725929
var0_centr_betweenness$theoretical_max
## [1] 6400260
#Betweenness Vertex Centrality Measures Dinamic Table
#Getting Measures
var0_with_CAPS_betweenness <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$equalone) %>% round(6)
var0_betweenness_w <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$var0) %>% round(6)
var0_centr_betweenness <- centralization.betweenness(var0_with_CAPS)$res %>% round(6)
#Creating a dataframe of measures
var0_with_CAPS_df_betweenness <- data.frame(var0_with_CAPS_betweenness,
var0_betweenness_w,
var0_centr_betweenness) %>% round(6)
#Adding type
var0_with_CAPS_df_betweenness <-cbind(var0_with_CAPS_df_betweenness, V(var0_with_CAPS)$LABEL_COR)
#Adding names
names(var0_with_CAPS_df_betweenness) <- c("Betweenness", "Betweenness Weighted", "Centralization Betweenness","Type")
#Ordering Variables
var0_with_CAPS_df_betweenness<-var0_with_CAPS_df_betweenness[c("Type","Betweenness", "Betweenness Weighted", "Centralization Betweenness")]
datatable(var0_with_CAPS_df_betweenness, filter = 'top')
##Aggregating data from previous table - mean
aggdata_mean <-aggregate(var0_with_CAPS_df_betweenness, by=list(var0_with_CAPS_df_betweenness$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Betweenness(M)", "Betweenness Weighted(M)", "Centralization Betweenness(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_betweenness, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","Betweenness(median)", "Betweenness Weighted(median)", "Centralization Betweenness(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table<- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(1) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","Betweenness(M)","Betweenness(median)","Betweenness Weighted(M)", "Betweenness Weighted(median)", "Centralization Betweenness(M)","Centralization Betweenness(median)")]
datatable(total_table, filter = 'top')
#Betweenness Vertex Centrality Measures Dinamic Table
#Getting Measures
var0_with_CAPS_betweenness <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$equalone) %>% round(6)
var0_betweenness_w <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$var0) %>% round(6)
var0_centr_betweenness <- centralization.betweenness(var0_with_CAPS)$res %>% round(6)
#Creating a dataframe of measures
var0_with_CAPS_df_betweenness <- data.frame(var0_with_CAPS_betweenness,
var0_betweenness_w,
var0_centr_betweenness) %>% round(6)
#Adding type
var0_with_CAPS_df_betweenness <-cbind(var0_with_CAPS_df_betweenness, V(var0_with_CAPS)$TIPO1)
#Adding names
names(var0_with_CAPS_df_betweenness) <- c("Betweenness", "Betweenness Weighted", "Centralization Betweenness","Type")
#Ordering Variables
var0_with_CAPS_df_betweenness<-var0_with_CAPS_df_betweenness[c("Type","Betweenness", "Betweenness Weighted", "Centralization Betweenness")]
datatable(var0_with_CAPS_df_betweenness, filter = 'top')
##Aggregating data from previous table - mean
aggdata_mean <-aggregate(var0_with_CAPS_df_betweenness, by=list(var0_with_CAPS_df_betweenness$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Betweenness(M)", "Betweenness Weighted(M)", "Centralization Betweenness(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_betweenness, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","Betweenness(median)", "Betweenness Weighted(median)", "Centralization Betweenness(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table<- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(6) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","Betweenness(M)","Betweenness(median)","Betweenness Weighted(M)", "Betweenness Weighted(median)", "Centralization Betweenness(M)","Centralization Betweenness(median)")]
datatable(total_table, filter = 'top')
#Betweenness Vertex Centrality Measures Dinamic Table
#Getting Measures
var0_with_CAPS_betweenness <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$equalone) %>% round(6)
var0_betweenness_w <- betweenness(var0_with_CAPS, weights=E(var0_with_CAPS)$var0) %>% round(1)
var0_centr_betweenness <- centralization.betweenness(var0_with_CAPS)$res %>% round(6)
#Creating a dataframe of measures
var0_with_CAPS_df_betweenness <- data.frame(var0_with_CAPS_betweenness,
var0_betweenness_w,
var0_centr_betweenness) %>% round(6)
#Adding type
var0_with_CAPS_df_betweenness <-cbind(var0_with_CAPS_df_betweenness, V(var0_with_CAPS)$TIPO2)
#Adding names
names(var0_with_CAPS_df_betweenness) <- c("Betweenness", "Betweenness Weighted", "Centralization Betweenness","Type")
#Ordering Variables
var0_with_CAPS_df_betweenness<-var0_with_CAPS_df_betweenness[c("Type","Betweenness", "Betweenness Weighted", "Centralization Betweenness")]
datatable(var0_with_CAPS_df_betweenness, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_df_betweenness, by=list(var0_with_CAPS_df_betweenness$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Betweenness(M)", "Betweenness Weighted(M)", "Centralization Betweenness(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_df_betweenness, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","Betweenness(median)", "Betweenness Weighted(median)", "Centralization Betweenness(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table<- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(6) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","Betweenness(M)","Betweenness(median)","Betweenness Weighted(M)", "Betweenness Weighted(median)", "Centralization Betweenness(M)","Centralization Betweenness(median)")]
datatable(total_table, filter = 'top')
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#Plotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$color[edge.start],
edge.arrow.size=(betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0)+1)/100000,
edge.width=E(var0_with_CAPS)$weight/10*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$color,
vertex.size=betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0 )/150,
vertex.frame.color="black",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=(betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0)+1)/10000,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$LABEL_COR
b<-V(var0_with_CAPS)$color
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Vertex Betweenness Sized - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf("Median Betweenness: %.2f\nSD Betweenness: %.2f",
median(betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0)),
sd(betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0))
)
)
#Get Variable
V(var0_with_CAPS)$var0_centr_betweenness<-(centralization.betweenness(var0_with_CAPS)$res)/100
V(var0_with_CAPS)$var0_color_degree<-round(V(var0_with_CAPS)$var0_centr_betweenness,6)
#Creating brewer pallette
var0_vertex_color_degree<-
colorRampPalette(brewer.pal(length(unique(
V(var0_with_CAPS)$var0_color_degree)), "Spectral"))(
length(unique(V(var0_with_CAPS)$var0_color_degree)))
#Saving as Vertex properties
V(var0_with_CAPS)$var0_vertex_color_degree<-
var0_vertex_color_degree[as.numeric(
cut(V(var0_with_CAPS)$var0_color_degree,
breaks=length(unique(V(var0_with_CAPS)$var0_color_degree))))]
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS, es=E(var0_with_CAPS), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS))
maxC <- rep(Inf, vcount(var0_with_CAPS))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights = E(var0_with_CAPS)$weight)
#PLotting
plot(var0_with_CAPS,
layout=co,
edge.color=V(var0_with_CAPS)$var0_vertex_color_degree[edge.start],
edge.arrow.size=closeness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0, mode="out"),
edge.width=E(var0_with_CAPS)$weight/10*mean(E(var0_with_CAPS)$weight),
edge.curved = TRUE,
vertex.color=V(var0_with_CAPS)$var0_vertex_color_degree,
vertex.size=(centralization.betweenness(var0_with_CAPS)$res+1)/100,
vertex.frame.color="white",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS,"LABEL_COR"),
vertex.label.cex=(centralization.betweenness(var0_with_CAPS)$res + 1)/10000,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS)$var0_color_degree
b<-V(var0_with_CAPS)$var0_vertex_color_degree
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
e<-e[order(e$a,decreasing=T),]
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Centralization Betweenness - 2_RELACIONAMENTO FORMAL (var0)", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf("Median Betweenness:%.0f\nSDBetweenness: %.0f",
median(betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0)),
sd(betweenness(var0_with_CAPS, weights = E(var0_with_CAPS)$var0))
)
)
Reciprocity Default - Proportion of mutual connections - probability that hte opposite counterpart of a directed graph is also included
reciprocity(var0_with_CAPS, mode="default")
## [1] 0.4145177
Reciprocity Ratio - Probability of mutual connections between a vertex pair - if we know - probability that hte opposite counterpart of a directed graph is also included in the
reciprocity(var0_with_CAPS, mode="ratio")
## [1] 0.2614458
A dyad consists of an unordered pair of actors and links that exist between two actors of the pair classified by mutal non-mutual and no connection in a directed graphs
Dyads are 2-subgraphs where a subgraph is a subset of actors taken from the complete set of network actors and all links between them. See more here http://file.scirp.org/pdf/SN_2013012915270187.pdf
Number of pairs with mutual connections “mut” and number of pairs with non-mutual connections “asym”
dyad.census_var0_with_CAPS<-dyad.census(var0_with_CAPS)
dyad.census_var0_with_CAPS_mut<-dyad.census_var0_with_CAPS$mut
dyad.census_var0_with_CAPS_mut
## [1] 217
dyad.census_var0_with_CAPS_asym<-dyad.census_var0_with_CAPS$asym
dyad.census_var0_with_CAPS_asym
## [1] 613
dyad.census_var0_with_CAPS_null<-dyad.census_var0_with_CAPS$null
dyad.census_var0_with_CAPS_null
## [1] 16561
The studies about transitivity in social networks led Holland and Leinhardt (1975) to propose that the local structure in social networks can be expressed by the triad census or triad count, the numbers of triads of any kinds.
You can see more here: http://www.stats.ox.ac.uk/~snijders/Trans_Triads_ha.pdf
#Triad Census
tc_var0_with_CAPS <- triad.census(var0_with_CAPS)
#Triad Census Label
census_labels = c('T.003',
'T.012',
'T.102',
'T.021D',
'T.021U',
'T.021C',
'T.111D',
'T.111U',
'T.030T',
'T.030C',
'T.201',
'T.120D',
'T.120U',
'T.120C',
'T.210',
'T.300')
ordering = c('1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'13',
'10',
'9',
'14',
'15',
'11',
'12',
'16')
#Saving in a dataframe for further studies
triad_df_var0_with_CAPS <- data.frame(census_labels,tc_var0_with_CAPS)
write.csv(triad_df_var0_with_CAPS, "~/SNArRDJF/Banco Redes R/var0_with_CAPS_complet_triads.csv")
The following labels gives the 16 different triads for directed graphs. The coding refers to the numbers of mutual, asymmetric, and null dyads, with a further identifying letter: Up, Down, Cyclical, Transitive.
E.g., 1-2-0-D has 1 mutual, 2 asymmetric, 0 null dyads, and the Down orientation.
triad_df_var0_with_CAPS
## census_labels
## 1 T.003
## 2 T.012
## 3 T.102
## 4 T.021D
## 5 T.021U
## 6 T.021C
## 7 T.111D
## 8 T.111U
## 9 T.030T
## 10 T.030C
## 11 T.201
## 12 T.120D
## 13 T.120U
## 14 T.120C
## 15 T.210
## 16 T.300
## tc_var0_with_CAPS
## 1 941561
## 2 84648
## 3 25200
## 4 5457
## 5 1507
## 6 2599
## 7 1355
## 8 5246
## 9 410
## 10 38
## 11 3242
## 12 113
## 13 369
## 14 156
## 15 410
## 16 134
#Recoding different types of triads
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.003"]<-"Vacuously Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.012"]<-"Vacuously Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.102"]<-"Vacuously Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.021D"]<-"Vacuously Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.021U"]<-"Vacuously Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.021C"]<-"Intransitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.111D"]<-"Intransitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.111U"]<-"Intransitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.030T"]<-"Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.030C"]<-"Intransitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.201"]<-"Intransitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.120D"]<-"Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.120U"]<-"Transitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.120C"]<-"Intransitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.210"]<-"Intransitive"
triad_df_var0_with_CAPS$type[triad_df_var0_with_CAPS$census_labels=="T.300"]<-"Transitive"
Graphical Ilustration
datatable(triad_df_var0_with_CAPS)
Socialnetwork is treated as an undirected network global - ratio of triangles (direction disregarded) to connected triples.
transitivity(var0_with_CAPS, type="global")
## [1] 0.2012677
Ratio of triangles to connected triples each vertex is part of.
V(var0_with_CAPS)$var0_transitivity_local<-transitivity(var0_with_CAPS, type="local")
var0_with_CAPS_transitivity_local<-transitivity(var0_with_CAPS, type="local") #local - ratio of triangles to connected triples each vertex is part of.
summary(var0_with_CAPS_transitivity_local[which(var0_with_CAPS_transitivity_local != Inf)])
## Min. 1st Qu. Median
## 0.0000 0.2105 0.3333
## Mean 3rd Qu. Max.
## 0.3669 0.4429 1.0000
sd(var0_with_CAPS_transitivity_local[which(var0_with_CAPS_transitivity_local != Inf)])
## [1] 0.2507234
V(var0_with_CAPS)$var0_transitivity_barrat<-transitivity(var0_with_CAPS, weights=E(var0_with_CAPS)$weight, type="barrat")
var0_with_CAPS_transitivity_barrat<-transitivity(var0_with_CAPS, weights=E(var0_with_CAPS)$weight, type="barrat")
summary(var0_with_CAPS_transitivity_barrat[which(var0_with_CAPS_transitivity_barrat != Inf)])
## Min. 1st Qu. Median
## 0.0000 0.4067 0.6667
## Mean 3rd Qu. Max.
## 0.6917 0.9333 2.0000
sd(var0_with_CAPS_transitivity_barrat[which(var0_with_CAPS_transitivity_barrat != Inf)])
## [1] 0.4014316
#Getting Measures
var0_with_CAPS_transitivity_local<-transitivity(var0_with_CAPS, type="local") %>% round(3)
var0_with_CAPS_transitivity_barrat<-transitivity(var0_with_CAPS, weights=E(var0_with_CAPS)$weight, type="barrat") %>% round(3)
#Creating a datagrame of measures
var0_with_CAPS_transitivity_df <- data.frame(var0_with_CAPS_transitivity_local,var0_with_CAPS_transitivity_barrat) %>% round(3)
var0_with_CAPS_transitivity_df <-cbind(var0_with_CAPS_transitivity_df, V(var0_with_CAPS)$LABEL_COR)
#Adding names
names(var0_with_CAPS_transitivity_df) <- c("Local", "Barrat's Weighted","Type")
#Ordering Variables
var0_with_CAPS_transitivity_df<-var0_with_CAPS_transitivity_df[c("Type", "Local", "Barrat's Weighted")]
datatable(var0_with_CAPS_transitivity_df, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_transitivity_df, by=list(var0_with_CAPS_transitivity_df$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Local(M)", "Barrat's Weighted(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_transitivity_df, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","Local(median)", "Barrat's Weighted(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(3) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","Local(M)","Local(median)", "Barrat's Weighted(M)","Barrat's Weighted(median)")]
datatable(total_table, filter = 'top')
#Getting Measures
var0_with_CAPS_transitivity_local<-transitivity(var0_with_CAPS, type="local") %>% round(3)
var0_with_CAPS_transitivity_barrat<-transitivity(var0_with_CAPS, weights=E(var0_with_CAPS)$weight, type="barrat") %>% round(3)
#Creating a datagrame of measures
var0_with_CAPS_transitivity_df <- data.frame(var0_with_CAPS_transitivity_local,var0_with_CAPS_transitivity_barrat) %>% round(3)
var0_with_CAPS_transitivity_df <-cbind(var0_with_CAPS_transitivity_df, V(var0_with_CAPS)$TIPO1)
#Adding names
names(var0_with_CAPS_transitivity_df) <- c("Local", "Barrat's Weighted","Type")
#Ordering Variables
var0_with_CAPS_transitivity_df<-var0_with_CAPS_transitivity_df[c("Type", "Local", "Barrat's Weighted")]
datatable(var0_with_CAPS_transitivity_df, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_transitivity_df, by=list(var0_with_CAPS_transitivity_df$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Local(M)", "Barrat's Weighted(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_transitivity_df, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","Local(median)", "Barrat's Weighted(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(3) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","Local(M)","Local(median)", "Barrat's Weighted(M)","Barrat's Weighted(median)")]
datatable(total_table, filter = 'top')
#Getting Measures
var0_with_CAPS_transitivity_local<-transitivity(var0_with_CAPS, type="local") %>% round(3)
var0_with_CAPS_transitivity_barrat<-transitivity(var0_with_CAPS, weights=E(var0_with_CAPS)$weight, type="barrat") %>% round(3)
#Creating a datagrame of measures
var0_with_CAPS_transitivity_df <- data.frame(var0_with_CAPS_transitivity_local,var0_with_CAPS_transitivity_barrat) %>% round(3)
var0_with_CAPS_transitivity_df <-cbind(var0_with_CAPS_transitivity_df, V(var0_with_CAPS)$TIPO2)
#Adding names
names(var0_with_CAPS_transitivity_df) <- c("Local", "Barrat's Weighted","Type")
#Ordering Variables
var0_with_CAPS_transitivity_df<-var0_with_CAPS_transitivity_df[c("Type", "Local", "Barrat's Weighted")]
datatable(var0_with_CAPS_transitivity_df, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_transitivity_df, by=list(var0_with_CAPS_transitivity_df$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Local(M)", "Barrat's Weighted(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_transitivity_df, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group","Local(median)", "Barrat's Weighted(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(3) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[c("Group","Local(M)","Local(median)", "Barrat's Weighted(M)","Barrat's Weighted(median)")]
datatable(total_table, filter = 'top')
Defined as the shortest distance between each pair of nodes in the network (in both directions for directed graphs).
Calculates the average path length in a graph, by calculating the shortest paths between all pairs of vertices (both ways for directed graphs).
This function does not consider edge weights currently and uses a breadth-first search.
mean_distance(var0_with_CAPS, directed=T, unconnected = T)
## [1] 2.416184
#Shortest Paths
var0_with_CAPS_sp_in <- shortest.paths(var0_with_CAPS, mode='in', weights=E(var0_with_CAPS)$var0) #in
var0_with_CAPS_sp_out <- shortest.paths(var0_with_CAPS, mode='out', weights=E(var0_with_CAPS)$var0) # out
var0_with_CAPS_sp_all <- shortest.paths(var0_with_CAPS, mode='all', weights=E(var0_with_CAPS)$var0) # all
summary(var0_with_CAPS_sp_in[which(var0_with_CAPS_sp_in != Inf)])
## Min. 1st Qu. Median
## 0.000 2.000 2.000
## Mean 3rd Qu. Max.
## 2.391 3.000 6.000
sd(var0_with_CAPS_sp_in[which(var0_with_CAPS_sp_in != Inf)])
## [1] 0.8200629
summary(var0_with_CAPS_sp_out[which(var0_with_CAPS_sp_out != Inf)])
## Min. 1st Qu. Median
## 0.000 2.000 2.000
## Mean 3rd Qu. Max.
## 2.391 3.000 6.000
sd(var0_with_CAPS_sp_out[which(var0_with_CAPS_sp_out != Inf)])
## [1] 0.8200629
summary(var0_with_CAPS_sp_all[which(var0_with_CAPS_sp_all != Inf)])
## Min. 1st Qu. Median
## 0.000 2.000 2.000
## Mean 3rd Qu. Max.
## 2.653 3.000 6.000
sd(var0_with_CAPS_sp_all[which(var0_with_CAPS_sp_all != Inf)])
## [1] 0.9723083
#All shortest paths
distances_dist_all_var0_with_CAPS<-distances(var0_with_CAPS, mode="all", weights=E(var0_with_CAPS)$var0)
#distances_sp_all_var0_with_CAPS
distances_dist_all_var0_with_CAPS[distances_dist_all_var0_with_CAPS=="Inf"]<-NA
#Mean Reachbility by Vertex
distances_sp_all_var0_with_CAPS_vec <- vector()
for (i in 1:vcount(var0_with_CAPS)) {
distances_sp_all_var0_with_CAPS_vec[i] <-
mean(distances_dist_all_var0_with_CAPS[i,],na.rm=T)
}
#Adding to igraph object
V(var0_with_CAPS)$var0_sp_all<-distances_sp_all_var0_with_CAPS_vec
distances_dist_in_var0_with_CAPS<-distances(var0_with_CAPS, mode="in",weights=E(var0_with_CAPS)$var0)
#distances_sp_in_var0_with_CAPS
distances_dist_in_var0_with_CAPS[distances_dist_in_var0_with_CAPS=="Inf"]<-NA
#Mean Reachbility by Vertex
distances_sp_in_var0_with_CAPS_vec <- vector()
for (i in 1:vcount(var0_with_CAPS)) {
distances_sp_in_var0_with_CAPS_vec[i] <- mean(distances_dist_in_var0_with_CAPS[i,], na.rm=T)
}
#Adding to igraph object
V(var0_with_CAPS)$var0_sp_in<-distances_sp_in_var0_with_CAPS_vec
distances_dist_out_var0_with_CAPS<-distances(var0_with_CAPS, mode="out", weights=E(var0_with_CAPS)$var0)
distances_dist_out_var0_with_CAPS[distances_dist_out_var0_with_CAPS=="Inf"]<-NA
#Mean Reachbility by Vertex
distances_sp_out_var0_with_CAPS_vec <- vector()
for (i in 1:vcount(var0_with_CAPS)) {
distances_sp_out_var0_with_CAPS_vec[i] <-
mean(distances_dist_out_var0_with_CAPS[i,], na.rm = T)
}
#Adding to igraph object
V(var0_with_CAPS)$var0_sp_out<-distances_sp_out_var0_with_CAPS_vec
#Creating a datagrame of measures
var0_with_CAPS_shortpath_df <- data.frame(distances_sp_in_var0_with_CAPS_vec, distances_sp_out_var0_with_CAPS_vec, distances_sp_all_var0_with_CAPS_vec) %>% round(3)
#Adding type
var0_with_CAPS_shortpath_df <-cbind(var0_with_CAPS_shortpath_df, V(var0_with_CAPS)$LABEL_COR)
#Adding names
names(var0_with_CAPS_shortpath_df) <- c("Short Path IN", "Short Path OUT","Short Path ALL","Type")
#Ordering Variables
var0_with_CAPS_shortpath_df<-var0_with_CAPS_shortpath_df[c("Type", "Short Path IN", "Short Path OUT","Short Path ALL")]
datatable(var0_with_CAPS_shortpath_df, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_shortpath_df, by=list(var0_with_CAPS_shortpath_df$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Short Path IN(M)", "Short Path OUT(M)","Short Path ALL(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_shortpath_df, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group", "Short Path IN(median)", "Short Path OUT(median)","Short Path ALL(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(3) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[,c("Group","Short Path IN(M)","Short Path IN(median)","Short Path OUT(M)","Short Path OUT(median)","Short Path ALL(M)","Short Path ALL(median)")]
datatable(total_table, filter = 'top')
#Creating a datagrame of measures
var0_with_CAPS_shortpath_df <- data.frame(distances_sp_in_var0_with_CAPS_vec, distances_sp_out_var0_with_CAPS_vec, distances_sp_all_var0_with_CAPS_vec) %>% round(3)
#Adding type
var0_with_CAPS_shortpath_df <-cbind(var0_with_CAPS_shortpath_df, V(var0_with_CAPS)$TIPO1)
#Adding names
names(var0_with_CAPS_shortpath_df) <- c("Short Path IN", "Short Path OUT","Short Path ALL","Type")
#Ordering Variables
var0_with_CAPS_shortpath_df<-var0_with_CAPS_shortpath_df[c("Type", "Short Path IN", "Short Path OUT","Short Path ALL")]
datatable(var0_with_CAPS_shortpath_df, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_shortpath_df, by=list(var0_with_CAPS_shortpath_df$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Short Path IN(M)", "Short Path OUT(M)","Short Path ALL(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_shortpath_df, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group", "Short Path IN(median)", "Short Path OUT(median)","Short Path ALL(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(3) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[,c("Group","Short Path IN(M)","Short Path IN(median)","Short Path OUT(M)","Short Path OUT(median)","Short Path ALL(M)","Short Path ALL(median)")]
datatable(total_table, filter = 'top')
#Creating a datagrame of measures
var0_with_CAPS_shortpath_df <- data.frame(distances_sp_in_var0_with_CAPS_vec, distances_sp_out_var0_with_CAPS_vec, distances_sp_all_var0_with_CAPS_vec) %>% round(3)
#Adding type
var0_with_CAPS_shortpath_df <-cbind(var0_with_CAPS_shortpath_df, V(var0_with_CAPS)$TIPO2)
#Adding names
names(var0_with_CAPS_shortpath_df) <- c("Short Path IN", "Short Path OUT","Short Path ALL","Type")
#Ordering Variables
var0_with_CAPS_shortpath_df<-var0_with_CAPS_shortpath_df[c("Type", "Short Path IN", "Short Path OUT","Short Path ALL")]
datatable(var0_with_CAPS_shortpath_df, filter = 'top')
aggdata_mean <-aggregate(var0_with_CAPS_shortpath_df, by=list(var0_with_CAPS_shortpath_df$Type), FUN=mean, na.rm=TRUE)
names(aggdata_mean) <- c("Group","Type","Short Path IN(M)", "Short Path OUT(M)","Short Path ALL(M)")
#Removing Type variable
aggdata_mean<-aggdata_mean[,-c(2)]
aggdata_median <-aggregate(. ~ Type, var0_with_CAPS_shortpath_df, function(x) c(median=median(x)))
names(aggdata_median) <- c("Group", "Short Path IN(median)", "Short Path OUT(median)","Short Path ALL(median)")
#Removing Type variable
#aggdata_median<-aggdata_median[,-c(2)]
total_table <- merge(aggdata_mean,aggdata_median,by="Group")
#Rounding
Group<-total_table[,c(1)] #Keeping group
total_table<-total_table[,-c(1)] %>% round(3) #Rouding
total_table<-cbind(Group,total_table) #Binding toghter
#Organizing Variabels
total_table<-total_table[,c("Group","Short Path IN(M)","Short Path IN(median)","Short Path OUT(M)","Short Path OUT(median)","Short Path ALL(M)","Short Path ALL(median)")]
datatable(total_table, filter = 'top')
sp<-distance_table(var0_with_CAPS, directed = TRUE)
short_paths<-c(sp$unconnected, sp$res)
labels<-c("unconnected", "one", "two","three", "four", "five", "six")
sphist<-as.data.frame(cbind(labels, short_paths))
names(sphist)<-c("Short Paths Length - Vertex Pairs","Count")
datatable(sphist)
#var0_with_CAPS_u<-simplify(var0_with_CAPS) #Simplify
var0_with_CAPS_u<-as.undirected(var0_with_CAPS, mode="collapse",edge.attr.comb=list(weight="mean","ignore"))
Graph clique is a subset of vertices of a graph such that every two vertices in the clique are adjacent. - To check*
cliques_var0_with_CAPS_u<-cliques(var0_with_CAPS_u) # list of cliques
length(cliques_var0_with_CAPS_u)
## [1] 6464
cliques_var0_with_CAPS_u_size<-sapply(cliques(var0_with_CAPS_u), length)
cliques_var0_with_CAPS_u_size_t<-table(cliques_var0_with_CAPS_u_size)
cliques_var0_with_CAPS_u_size_t
## cliques_var0_with_CAPS_u_size
## 1 2 3 4 5 6
## 187 830 1630 1845 1257 540
## 7 8 9
## 148 25 2
barplot(cliques_var0_with_CAPS_u_size_t)
title(main = "Cliques Sizes Frequency - Bar Plot 2_RELACIONAMENTO FORMAL (var0)", font.main = 4)
A maximum clique is a clique that cannot be extended by including one more adjacent vertex (not included in larger one).
clique_num(var0_with_CAPS_u)
## [1] 9
count_max_cliques(var0_with_CAPS_u)
## [1] 422
largest_cliques<-largest_cliques(var0_with_CAPS_u) # cliques with max number of nodes
length(largest_cliques)
## [1] 2
#Coloring largest clique as gold and others one as gray
vcol <- rep("grey80", vcount(var0_with_CAPS_u))
vcol[unlist(largest_cliques(var0_with_CAPS_u))] <- "gold"
#Saving gray and gold as igraph attribute
V(var0_with_CAPS_u)$vcol<-vcol
#Saving labels to display as legend
V(var0_with_CAPS_u)$vcollabel[V(var0_with_CAPS_u)$vcol=="gold"]<-"Largets Clique"
V(var0_with_CAPS_u)$vcollabel [V(var0_with_CAPS_u)$vcol=="grey80"]<-"Others"
set.seed(123)
#Plotting based only on degree measures
edge.start <- ends(var0_with_CAPS_u, es=E(var0_with_CAPS_u), names=F)[,1]
# Fixing ego
minC <- rep(-Inf, vcount(var0_with_CAPS_u))
maxC <- rep(Inf, vcount(var0_with_CAPS_u))
minC[1] <- maxC[1] <- 0
co <- layout_with_fr(var0_with_CAPS_u, niter=10^4, minx=minC, maxx=maxC,miny=minC, maxy=maxC, weights=E(var0_with_CAPS_u)$var0_with_CAPS)
#Plotting
plot(var0_with_CAPS_u,
layout=co,
edge.color=V(var0_with_CAPS_u)$vcol[edge.start],
#edge.arrow.size=E(var0_with_CAPS_u)$var0_with_CAPS/2000*mean(E(var0_with_CAPS_u)$var0_with_CAPS),
#edge.width=E(var0_with_CAPS_u)$var0_with_CAPS/20*mean(E(var0_with_CAPS_u)$var0_with_CAPS),
edge.curved = TRUE,
vertex.color=vcol,
vertex.size=log(degree(var0_with_CAPS_u)+2)*10,
vertex.frame.color="black",
vertex.label.color="black",
vertex.label=get.vertex.attribute(var0_with_CAPS_u,"LABEL_COR"),
vertex.label.cex=log(degree(var0_with_CAPS_u)+2)/10,
vertex.label.dist=0,
rescale=F,
xlim=range(co[,1]),
ylim=range(co[,2])
)
axis(1)
axis(2)
#Solving Problems with legend rendering
a<-V(var0_with_CAPS_u)$vcollabel
b<-V(var0_with_CAPS_u)$vcol
c<-table(a,b)
d<-as.data.frame(c)
e<-subset(d, d$Freq>0)
f<-t(e$a)
g<-t(e$b)
#Adding Legend
legend(x=range(co[,1])[2],
y=range(co[,2])[2],
legend=as.character(f),
pch=21,
col = "#777777",
pt.bg=as.character(g),
pt.cex=2,
bty="n",
ncol=1,
lty=1,
cex = .3)
#Adding Title
title("Network Vertex Degree Sized - classfied by largest clique vs. others", sub = "Source: from authors ")
text(
x=range(co[,1])[1],
y=range(co[,2])[1],
labels = sprintf("Size of largest clique: %.1f\nNumber of maximal cliques: %.1f",
clique_num(var0_with_CAPS_u),
count_max_cliques(var0_with_CAPS_u)
)
)
# Re-generate dataframes for both nodes and edges, now containing
# calculated network attributes
var0_with_CAPS_node_list <- get.data.frame(var0_with_CAPS, what = "vertices")
#Write Node List
write.csv(var0_with_CAPS_node_list, "~/SNArRDJF/Tese_Pedro/Completa/Banco/var0_with_CAPS_node_list_df.csv")
# Determine a community for each edge. If two nodes belong to the
# same community, label the edge with that community. If not,
# the edge community value is 'NA'
var0_with_CAPS_edge_list <- get.data.frame(var0_with_CAPS, what = "edges")
#Write Node List
write.csv(var0_with_CAPS_edge_list, "~/SNArRDJF/Tese_Pedro/Completa/Banco/var0_with_CAPS_edge_list.csv")
#Write Node List
write.csv(var0_with_CAPS_edge_list, "~/SNArRDJF/Tese_Pedro/Completa/Banco/var0_with_CAPS_edge_list.csv")
save.image("~/SNArRDJF/Robject/var0_with_CAPS_dataframe.RData")